java基础 - 位运算符

package concurrentMy;

/**
 * 
 * (位运算符)
 *
 * <p>
 * 修改历史:                                            <br>  
 * 修改日期            修改人员       版本             修改内容<br>  
 * -------------------------------------------------<br>  
 * 2016年3月22日 上午10:13:57   user     1.0        初始化创建<br>
 * </p> 
 *
 * @author        Peng.Li 
 * @version        1.0  
 * @since        JDK1.7
 */
public class ConcurrentHashMapTest {

    public static void main(String[] args) {
        
         int a = 60; /* 60 = 0011 1100 */ 
         int b = 13; /* 13 = 0000 1101 */
         //11 1100
         System.out.println(Integer.toBinaryString(a));
         //1101
         System.out.println(Integer.toBinaryString(b));
         
         //按位取与,两个数,只要一个数为0,结果为0
         int c = 0;
         c = a & b;       /* 12 = 0000 1100 */
         System.out.println("a & b = " + c );
         //1100
         System.out.println(Integer.toBinaryString(c));
         
         //按位运算,或 两个数只要一个数为1,结果为1
         c = a | b;       /* 61 = 0011 1101 */
         System.out.println("a | b = " + c );
         
         // 按位异或操作符,两个操作数的某一位不相同时候结果的该位就为1。
         c = a ^ b;       /* 49 = 0011 0001 */
         System.out.println("a ^ b = " + c );
         
         //按位补运算符翻转操作数的每一位。
         c = ~a;          /*-61 = 1100 0011 */
         System.out.println("~a = " + c );
         //按位右移运算符。左操作数按位右移右操作数指定的位数。
         c = a << 2;     /* 240 = 1111 0000 */
         System.out.println("a << 2 = " + c );
         //按位右移运算符。左操作数按位右移右操作数指定的位数。
         c = a >> 2;     /* 15 = 1111 */
         System.out.println("a >> 2  = " + c );
         //按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。
         c = a >>> 2;     /* 15 = 0000 1111 */
         System.out.println("a >>> 2 = " + c );
        

    }

}

 

posted @ 2016-03-22 10:48  积淀  阅读(247)  评论(0编辑  收藏  举报